#include "epsilon.h"

EPSILON_API eEngine epsilon;

eEngine::eEngine (void)
{
  // Init
}

eEngine::~eEngine (void)
{
  // Destroy
}


#include "window.h"

EPSILON_API
eWindow*
eEngine::createWindow (eWindowParameters* params)
{
  if (params == NULL) {
    Assert (false, _T ("Invalid Window Parameters passed to eEngine::createWindow (...)"));
    eSetLastError (EPSILON_ERROR_INVALID_WINDOW_PARAMETERS);
    return NULL;
  }

  eWindow* wnd = new eWindow ();

  wnd->Create (*params);

  return wnd;
}

EPSILON_API
void
eEngine::Think (void)
{
#ifdef WIN32
  eWindowWin32::Think ();
#else
#  ifndef __APPLE__
  eWindowX11::Think ();
#  else
  eWindowQuartz::Think ();
#  endif
#endif

  // Engine Crap Here
}
